1. Field of the Invention
The present invention generally relates to managing structured artifacts, and more particularly to determining matches between a pair of structured artifacts.
2. Description of the Related Art
System architectures are often described by formal models or informal diagrams. In practice, there are often a number of versions of a model, e.g. for different views of a system, divergent variants, or a series of revisions. This is especially true for Information Technology (IT) system architectures. Understanding how versions of an IT model correspond or differ is crucial, yet model correspondence remains a mostly manual process, subject to errors and altogether too time-consuming. Little work has been done on automated assistance for matching models and diagrams.
Finding correspondences between diagrams and models has several applications in the system development lifecycle. There are many examples of diagrams and models central to the modern IT systems development processes. Some of these include: structured representations of requirements, system overviews, architectural specifications of systems, network topologies, object designs, state transition diagrams, and control and data flow representations of code.
Finding correspondences also has application for many other kinds of structured artifacts, including: network topologies, business models, process workflow diagrams, structured representations of requirements, organization charts, entity-relationship diagrams, state transition diagrams, object designs, control and data flow representations of program code, dataflow graphs, user-interface designs, general presentation diagrams, etc.
The necessity for finding correspondences between diagrams and models can be summed up with three primary scenarios: a) reviewing and understanding revisions; b) understanding divergent variants for integration; and c) contributing to recovery of traceability information.
Reviewing and understanding revisions. An essential part of quality assurance in any engineering discipline is control of change. That dictates the need to review and understand changes prior to accepting them. In environments where models and diagrams are a primary design artifact, this means being able to compare a baseline diagram with a revised diagram to identify correspondences and discrepancies between them.
Understanding divergent variants for integration. Comparison is also necessary when integrating divergent variants of a model.
Contributing to recovery of traceability information. Furthermore, finding correspondences can be an important part of recovering traceability information that was not recorded during original development. One possible cause of not recording such information is deadline pressure. Traceability between software artifacts is the ability to navigate between related artifacts, such as requirements, architecture designs, models, code, test cases, and defect reports. At a finer level of granularity, it provides the ability to navigate between the elements included in different artifacts (e.g., between individual software components, hardware nodes, requirements, non-functional requirements, architectural decisions, and so forth, in an Architectural Description Standard design). Traceability is considered an important ingredient in improving the efficiency and quality of software production, and is used throughout the software development lifecycle. For example, it can be used by project managers to verify that each requirement has been satisfied, by architects to check the correct implementation of design concerns, and by software code maintainers to access the impact of a change.
The three primary scenarios discussed to this point are: a) reviewing and understanding revisions; b) understanding divergent variants for integration; and c) contributing to recovery of traceability information. Additional scenarios include: d) maintaining consistency between views; and e) identifying use of reference architectures.
Maintaining consistency between views. In model-driven development, different aspects of the system are represented by different sub-models. For example, one model may represent a functional view of the system, omitting non-functional requirements such as performance, while another model may represent an operational view, including non-functional requirements. Alternatively, one diagram may show elements of the system pertaining to security, while another diagram may show elements pertaining to high availability.
The different models may be created at different times and by different authors, which can render them inconsistent. Also, sometimes a designer changes one model but neglects to change the others. This is a problem for model-driven development, where diagrams must be consistent. Maintaining or restoring consistency requires an accurate understanding of the correspondences between diagrams. Maintaining consistency between overlapping views of a system is a vexing problem in the daily work of information technology (IT) architecture practitioners. Tool support for maintaining consistency will have a significant impact on productivity and quality.
Identifying use of reference architectures. Given a repository of architectural design documents, a user may want to find reference documents similar to the user's own design. Also, reference architectures change, so architects must be able to find and update customized uses of reference architectures within solutions. Finally, architects may need to find where a portion of a reference architecture has been used across a portfolio of solutions, or to determine which portions of a reference architecture have been used in a given solution.
Although human experts are capable of using reasoning in making good determinations of correspondences between models, it is a tedious, error-prone, time-consuming, manual process. While techniques have long existed for automated comparison of textual artifacts, little work has been reported concerning automated comparison of structured artifacts such as the diagrams and models that are common in large-scale IT system development. Therefore, there is a need for a method to overcome the stated shortcomings of the prior art.